knitr::opts_chunk$set(echo = TRUE)
library(plotly)
library(dplyr)
library(stringr)
library(htmlwidgets)
Wykres będzie dotyczył liczby nowych przypdaków zakażenia Covid-19 na 1000 mieszkańców w poszczególnych miesiącach pandemii w podziale na kraje.
df <- read.csv("C:/PDU/Pdu_projekt/WdED/PD1/owid-covid-data.csv")
world_population <- read.csv("C:/PDU/Pdu_projekt/WdED/PD1/world_population_data.csv")
world_population <- world_population %>%
select(country_code, X2021)
df <- df %>%
select(iso_code, location, date, total_cases, new_cases) %>%
mutate(date_without_day = str_extract(date, "[0-9]{4}-[0-9]{2}")) %>%
group_by(location, iso_code, date_without_day) %>%
summarise(month_new_cases = sum(new_cases)) %>%
left_join(world_population, by = c("iso_code" = "country_code")) %>%
mutate(new_cases_per_1000_inhabitants = (month_new_cases/X2021)*1000)
plot <- plot_ly(z = ~df$new_cases_per_1000_inhabitants,
locations = ~df$iso_code,
frame = ~df$date_without_day,
text = paste("Country: ", df$location, "<br>Infected per 1000 inhabitants: ", round(df$new_cases_per_1000_inhabitants, 4)),
type = "choropleth",
colorscale = "Reds",
hoverinfo = 'text',
colorbar = list(title = "<b>Infected per 1000 <br> inhabitants</b>",
tickfont = list(size = 14, family = "Arial"),
visible = TRUE)) %>%
colorbar(len=1) %>%
animation_opts(frame = 700) %>%
layout(
title = "<b>Number of Covid-19 infected per 1000 inhabitants in each month</b>",
titlefont = list(size = 20, family = "Arial"),
margin = list(t = 100, l = 20, r = 20, b = 100),
width = 900,
height = 540
)
frames <- list()
for (i in 1:length(unique(df$date_without_day))) {
df_subset <- df[df$date_without_day == unique(df$date_without_day)[i], ]
frames[[i]] <- list(
data = list(
z = ~df_subset$new_cases_per_1000_inhabitants,
locations = ~df_subset$iso_code
),
layout = list(sliders = list(
y = 0.9,
len = 0.5
),
coloraxis = list(
colorbar = list(title = "<b>Infected per 1000 <br> inhabitants</b>",
tickfont = list(size = 14, family = "Arial"),
visible = TRUE)
)
)
)
}
plot <- plot %>% animation_slider(frames = frames,
currentvalue = list(prefix = "Date: ",
font = list(family = "Arial", color = "black", size = 14)),
font = list(size = 14, family = "Arial"))
plot
Wizualizacja przedstawia liczbę nowych przypadków zakażenia Covid-19 przypadających na 1000 mieszkańców w poszczególnych krajach od stycznia 2020 do czerwca 2021 w każdym z miesięcy. Po najechaniu kursorem na dany kraj pojawia się dokładna informacja o zakażeniach (liczba zakażeń przypadających na 1000 mieszkańców została zaokrąglona do 4 miejsc po przecinku)
W początkowej fazie pandemii najwięcej zakażeń na 1000 mieszkańców było odnotowane w Chinach. Największa liczba zakażeń na 1000 mieszkańców przypada na grudzień 2020 w Stanach Zjednoczonych i wynosi około 19 przypadków. Od początku pandemii do stycznia 2021 liczba zakażeń stale rosła. Możemy również zaobserwować, że w Afryce zachorowań było mniej, co może wynikać z mniejszej liczby przeprowadzonych testów.
https://www.kaggle.com/datasets/fedesoriano/coronavirus-covid19-vaccinations-data - ramka danych dotycząca liczby nowych przypadków zachorowania na Covid-19 w poszczególnych państwach
https://www.kaggle.com/datasets/milanvaddoriya/world-population-data?resource=download - ramka danych dotyczących liczby ludności poszczególnych państw